<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        //1 练习：一个函数输入数字返还这个数字是否是质数 
        // 如果是 返还true 如果不是就返还false

        //2 练习：实现一个map函数；

        // 第一步：写逻辑
        // var a = 8;
        // var count = 0;
        // for(var i=1;i<=7;i++){
        //     if(a%i===0){
        //         count++;
        //     }
        // }
        // if(count==2){
        //     console.log("是质数");
        // }else{
        //     console.log("不是质数");
        // }
        // 第二步 ：封装 :包裹一个函数
        // function fn() {
        //     var a = 8;
        //     var count = 0;
        //     for (var i = 1; i <= 7; i++) {
        //         if (a % i === 0) {
        //             count++;
        //         }
        //     }
        //     if (count == 2) {
        //         console.log("是质数");
        //     } else {
        //         console.log("不是质数");
        //     }
        // }
        // fn()
        // 第三步：替换变量
        // function fn(a) {
        //     // var a = 8;
        //     var count = 0;
        //     for (var i = 1; i <= 7; i++) {
        //         if (a % i === 0) {
        //             count++;
        //         }
        //     }
        //     if (count == 2) {
        //         console.log("是质数");
        //     } else {
        //         console.log("不是质数");
        //     }
        // }
        // fn(8);
        // fn(9);
        // fn(10);
        // 第四步：考虑是否返还

        // function fn(a) {
        //     // var a = 8;
        //     var count = 0;
        //     for (var i = 1; i <= a; i++) {
        //         if (a % i === 0) {
        //             count++;
        //         }
        //     }
        //     if (count == 2) {
        //         // console.log("是质数");
        //         return true;
        //     } else {
        //         // console.log("不是质数");
        //         return false;
        //     }
        // }

        // console.log(fn(7))
        // console.log(fn(8))
        // console.log(fn(9))

        // 1.封装了逻辑 2.替换变量 3添加返还
        //第二题： 练习：实现一个map函数；
        // map也是一个循环：返还值
        var arr = ["张三", "李四", "王五"];
        // var newArr = arr.map(function (item) {
        //     return item + "-";
        // })
        var newArr = myMap(arr,function(item){
            console.log("执行了",item);
            return item
        })
        // 实现一个maMap函数
        // 函数的参数 可以各种类型 
        function myMap(arr,fn) {
            // 实现逻辑
            // 根据数组长度来循环执行fn
            var newArr = [];
            for(var i=0;i<arr.length;i++){
                //fn 是传入函数的返还值
              var newItem  =  fn(arr[i]);
              newArr[i] =  newItem;
            }
            console.log(newArr);
            return newArr;
        }

        console.log(arr, newArr);

    </script>
</body>

</html>